package com.jfl.system;

import java.util.List;

import com.jfl.base.BaseService;
import com.jfl.exception.BusinessException;
import com.jfl.model.SysUser;

/**
 * 暴露接口
 * 
 * @author 赵炎
 * @version [V1.00, 2018年11月30日]
 * @since V1.00
 */
public interface SysUserService extends BaseService<SysUser>
{
    /**
     * 加载所有用户信息
     */
    void init();
    
    /** 
     * 根据用户名查询
     * @param userName
     * @return
     */
    SysUser selectByUserName(String userName);

    /** 
     * 保存用户信息
     * @param user
     * @return
     */
    int saveUser(SysUser user);

    /** 
     * 删除用户信息
     * @param list
     * @param currentUserId 当前操作人用户Id
     * @throws BusinessException
     */
    void deleteUsers(List<Long> list, Long currentUserId) throws BusinessException;

    /** 
     * 校验用户名
     * @param user
     * @return
     */
    String countByUserName(SysUser user);

    /** 
     * 校验邮箱
     * @param user
     * @return
     */
    String countByEmail(SysUser user);

    /** 
     * 校验手机号
     * @param user
     * @return
     */
    String countByPhone(SysUser user);

    /** 
     * 修改用户信息
     * @param user
     * @return
     */
    int updateUser(SysUser user);
}
